package com.naiterui.ehp.bs.recommend.remote;


import java.util.Map;
import java.util.Set;

import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;

import com.naiterui.ehp.bp.bo.doctor.DoctorBO;
import com.naiterui.ehp.bp.bo.doctor.RecomDoctorBO;
import com.naiterui.ehp.bp.bo.doctor.RecomUserInfoBO;
import com.naiterui.ehp.bp.support.config.FeignConfiguration;
import com.naiterui.ehp.bp.support.exception.BusinessException;
import com.naiterui.ehp.bs.recommend.vo.dto.DoctorRecordDTO;

/**
 * @author guoyongxiang
 * @date 2019-07-23 19:52
 * @since 1.0.0
 */
@FeignClient(name = "recommendAd", url = "${ehp.domain.ad}", configuration = FeignConfiguration.class)
public interface IDoctorFeignClient {

    /**
     * 获取医生备案实名信息
     *
     * @param doctorId
     *
     * @return
     */

    @RequestMapping("inner/userinfo/doctorRecordInfo")
    DoctorRecordDTO getDoctorRecordInfo(@RequestParam("doctorId") Long doctorId);


    /**
     * 获取医生列表
     *
     * @param doctorIds
     *
     * @return
     *
     * @throws BusinessException
     */
    @RequestMapping("inner/userinfo/doctors")
    Map<Long, DoctorBO> getDoctors(@RequestBody Set<Long> doctorIds) throws BusinessException;

    @RequestMapping("inner/userinfo/recom")
    RecomUserInfoBO getUserInfoForRecom(@RequestParam("doctorId") Long doctorId, @RequestParam("patientId") Long patientId, @RequestParam("fetchNickname") Integer fetchNickname) throws BusinessException;

    @RequestMapping("inner/userinfo/recom/doctor/info")
    RecomDoctorBO getRecomDoctorInfo(@RequestParam("doctorId") Long doctorId) throws BusinessException;
}
